Computer virtualization is a technique that involves abstracting a physical computing machine platform into a virtual machine that is executed under the control of virtualization software running on a single hardware computing platform (also referred to herein as a “host system” or a “host computer”). A group of hardware computing platforms may be organized as a cluster to provide the hardware resources for virtual machines. In a server or data center that employs virtual machines, it is common to see hundreds, even thousands, of virtual machines running on multiple clusters of host systems.
For ease of deployment, software management, and hardware cost reduction reasons, virtual machines have been used to support virtual desktops for use in an organization in place of physical workstations. In such environments, a virtual desktop is delivered in the form of one or more “delta disks” layered on top of a master image, or “golden image.” Typically, the operating system is made read-only and is encapsulated in the master image. The same master image is delivered to all users, i.e., to each virtual machine (VM). Applications and settings for each user are installed in the one or more delta disks that are layered on top of the master image.
However, this approach is associated with several drawbacks. First, if the master image is updated with patches, then the delta disks layered on top of the patched master image would not function properly since the delta disks are dependent on the master image. Accordingly, new delta disks would need to be created for each VM each time the master image is updated. A second problem is that when many applications and settings are incorporated into the delta disks, the size of the delta disks can be quite large. Managing large delta disks can be time-consuming and cumbersome for an administrator.
Accordingly, there remains a need for a system and method for managing virtual desktops that overcomes the drawbacks discussed above.